package verificaforcadasenha;

import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Leonardo
 */
public class Implementacao01 extends Implementador{
    private final static String MUITO_FRACO = "Muito Fraco";
    private final static String FRACO = "Fraco";
    private final static String MEDIO = "Médio";
    private final static String FORTE = "Forte";
    private final static String MUITO_FORTE = "Muito Forte";
    
    @Override
    public String obterForcaDaSenha(String senha){
        
        Regra01 regra01 = new Regra01(senha);

        pontuacao += regra01.PasswordLength();
        
        try { 
            pontuacao += regra01.PasswordAnalysis();
        } catch (appSenhaException ex) {
            Logger.getLogger(Implementacao01.class.getName()).log(Level.SEVERE, null, ex);
        }
        
        return obterRanking(pontuacao);
    }
    
    private String obterRanking(int pontuacao){
        String ranking [] = { MUITO_FRACO, FRACO, MEDIO, FORTE, MUITO_FORTE };
        int pontuacaoParaRanking [] = { 16, 25, 35, 45, Integer.MAX_VALUE };

        return Utils.obterResultadoDaPontuacaoNoIntervalo(pontuacao, pontuacaoParaRanking, ranking);
    }
}
